iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 4
1
自我挑戰組

30天學python系列 第 4

[Day04] 自我練習

  • 分享至 

  • xImage
  •  

練習1 - 尋找水仙花數 (Narcissistic number)。
水仙花數是指一個 3 位數,它的每個位上的數字的3次方和等於它本身(例如:1^3 + 5^3+ 3^3 = 153)。

for i in range (100,1000):
    hundred = int(i / 100)
    ten = int((i % 100) / 10)
    one = i % 10
    if (hundred ** 3) + (ten ** 3) + (one ** 3) == i:
        print(i)

https://ithelp.ithome.com.tw/upload/images/20190919/20121116qIDQQaXrDE.png

練習2 - 尋找完美數 (Perfect number)。
完美數是指它的所有的真因子(除了自身以外的因數)和等於它本身(例如:1、2、3、6,除去它本身 6 外,1 + 2 + 3 = 6)。

for i in range (2,10000):
    sum = 0
    for j in range (1,i):
        if i % j == 0:
            sum += j
    if sum == i:
        print(i)

https://ithelp.ithome.com.tw/upload/images/20190919/201211160KGekqdrgW.png

練習3 - 百錢百雞問題。
雞公一隻價值五元,雞母一隻價值三元,小雞三隻價值一元。百元買百雞,問雞公、雞母、小雞各幾隻?

sum = 0
for i in range (0,20):
    for j in range (0,33):
        if 5 * i + 3 * j + (100 - i - j) / 3 == 100:
            print("公雞 %d 隻,母雞 %d 隻,小雞 %d 隻 " % (i,j,(100 - i - j)))

https://ithelp.ithome.com.tw/upload/images/20190919/20121116pPp7cntfvY.png

練習4 - 斐波那契數列 (Fibonacci sequence)。
斐波那契數列是指這樣一個數列1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765........
如果設 F(n) 為該數列的第 n 項(n∈N*),那麼這句話可以寫成如下形式:F(n) = F(n-1) + F(n-2)

a = 0
b = 1
for i in range (20):
    a ,b = b ,a + b
    print(a, end = ' ')

https://ithelp.ithome.com.tw/upload/images/20190919/20121116THjaMLQGCS.png

練習5 - Craps賭博遊戲。
一個簡單的賭博遊戲,遊戲規則如下:玩家擲兩個骰子,點數為 1 到 6,如果第一次點數和為 7 或 11,則玩家勝,如果點數和為 2、3 或 12,則玩家輸,如果和為其它點數,則記錄第一次的點數和,然後繼續擲骰,直至點數和等於第一次擲出的點數和,則玩家勝,如果在這之前擲出了點數和為 7,則玩家輸。

from random import randint
again = False

first = randint(1,6) + randint(1,6)
print('第一次點數和 %d' % first)
if first == 7 or first == 11:
    print('Win')
elif first == 2 or first == 3 or first ==  12:
    print('Lose')
else:
    again = True

while again:
    new = randint(1,6) + randint(1,6)
    print('現在點數和 %d' % new)
    if new == first:
        again = False
        print('Win')
    elif new == 7:
        again = False
        print('Lose')
    else:
        again = True

https://ithelp.ithome.com.tw/upload/images/20190919/20121116dK0TmOM2bO.png https://ithelp.ithome.com.tw/upload/images/20190919/20121116ageiCwxz7K.png
https://ithelp.ithome.com.tw/upload/images/20190919/20121116phx22PqOyv.png


上一篇
[Day03] 分支結構 & 循環結構
下一篇
[Day05] 函數和模組的使用
系列文
30天學python30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言